package conexion;

import java.sql.*;
import javax.swing.*;


public class Conexion {

	//controladore JDBC Y URL de la base de datos MySQL
	private String controlador="com.mysql.jdbc.Driver";
	
	//declarar objeto Connection para conectar a la base de datos
	private Connection conexion;

    public Conexion(){
    }

	public Connection abrirConexion(){
		//conectarse a  la base de datos
		try{

			//cargar clase de controlador de base de datos
			Class.forName(controlador);

			//establecer coneccion a la base de datos
			conexion= DriverManager.getConnection("jdbc:mysql://localhost:3306/dbecuaviaggio","root","root");
			return conexion;

		}//fin del bloque try
		//detectar posibles problemas al interactuar con la base de datos
		catch(SQLException exceptionSql){
			JOptionPane.showMessageDialog(null, exceptionSql.getMessage(), "Error en la base de datos", JOptionPane.ERROR_MESSAGE);
			return null;
		}
		//detectar posibles problemas al cargar el controlador de la base de datos
		catch(ClassNotFoundException claseNoEncontrada){
			JOptionPane.showMessageDialog(null, claseNoEncontrada.getMessage(), "No se econtro el controlador", JOptionPane.ERROR_MESSAGE);
			return null;
		}
		//detectar errores desconocidos
		catch(Exception e){
			JOptionPane.showMessageDialog(null, "El mensaje de error es: "+e.getMessage(), "Error desconocido al abrir conexion", JOptionPane.ERROR_MESSAGE);
			return null;
		}

	}//fin del metodo abrirConexion

	public void cerrarConexion(){
		// Asegurar que conexion se cierre correctamente
		try {
			conexion.close();
		}
		// manejar posibles excepciones al cerrar conexion
		catch (SQLException exceptionSql) {
			JOptionPane.showMessageDialog(null, exceptionSql.getMessage(),
					"Error al cerrar la conexion", JOptionPane.ERROR_MESSAGE);
		}
		//errores desconocidos al cerrar la conexion
		catch (Exception e) {
			JOptionPane.showMessageDialog(null, "La instancia de la conexion es: "+conexion+"\n"+
					"El mensaje de error es: "+e.getMessage(),
					"Error al cerrar la conexion", JOptionPane.ERROR_MESSAGE);
		}

	}//fin del metodo cerrarConexion


}// fin de la clase Conexion
